package com.micro.user.dto.request;

import javax.validation.constraints.NotBlank;
import lombok.Data;

/**
 * 用户登录请求DTO
 * 
 * @author micro
 * @since 1.0.0
 */
@Data
public class LoginRequest {

    /**
     * 用户名
     */
    @NotBlank(message = "用户名不能为空")
    private String username;

    /**
     * 密码
     */
    @NotBlank(message = "密码不能为空")
    private String password;

    /**
     * 是否记住登录状态
     */
    private Boolean rememberMe = false;

    /**
     * 登录类型：0-用户名密码登录,1-手机号验证码登录,2-身份证号登录
     */
    private Integer loginType = 0;

    /**
     * 验证码（手机号登录时使用）
     */
    private String verificationCode;

    /**
     * 判断是否为用户名密码登录
     */
    public boolean isUsernamePasswordLogin() {
        return loginType == null || loginType == 0;
    }

    /**
     * 判断是否为手机号验证码登录
     */
    public boolean isPhoneVerificationLogin() {
        return loginType != null && loginType == 1;
    }

    /**
     * 判断是否为身份证号登录
     */
    public boolean isIdCardLogin() {
        return loginType != null && loginType == 2;
    }
}
